Error correction is extremely important in digital communications. This is particularly true when the transmitted information signals are complicated data streams such as digitized, compressed video. However, error correction algorithms increase the amount of data to be transmitted, thus increasing the bandwidth requirements of the transmission medium.
To counteract the increased bandwidth requirements, a procedure known as "puncturing" is applied to the data prior to transmission. Puncturing takes data out of the error corrected data stream in a predetermined "puncture pattern" applied at a predetermined "puncture rate." On the receiving end, the punctured data must be "depunctured" which is essentially the opposite of puncturing. Depuncturing reorders the data into its original pre-puncture sequence, and identifies the positions in the data stream where data was removed (or punctured).
Prior methods of puncturing and depuncturing data include the use of logic circuitry, such as shift registers and the like, to store the entire puncture pattern. On the transmission side, the data stream is applied to the puncture logic circuitry which performs a load and shift operation to shift out the appropriate bits in the desired punctured sequence. On the receiver side, the punctured data stream is applied to the depuncture logic circuitry which performs a load and shift operation to shift out the appropriate bits in the pre-puncture sequence. Storing the entire puncture pattern in shift registers or similar components requires a relatively large amount of logic circuitry, particularly when the puncture pattern is long. The design and implementation of such prior circuitry quickly becomes complicated for long puncture patterns. Also, such circuitry is not easily modified to accommodate a different puncture pattern and rate.
Accordingly there is a need for a depuncturing and/or puncturing method and/or circuit that is relatively simple, uses few logic components, is easy to design and implement, and is easily modified to accommodate different puncture patterns and puncture rates.